home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
rbbs_pc
/
173amrg.zip
/
CSUB173A.MRG
< prev
next >
Wrap
Text File
|
1990-08-26
|
43KB
|
887 lines
* ------------[ BLED merge (c) Ken Goosens ]-------------
* Merge this against D:\172B\CNFG-SUB.BAS to produce CNFG-SUB.BAS
* D:\172B\CNFG-SUB.BAS: Date 2-10-1990 Size 97349 bytes
* ------------[ Created 08-26-1990 11:36:09 ]------------
* REPLACING old line(s) by new
' $linesize:132
* ------[ first line different ]------
' $title: 'CNFG-SUB.BAS 17.3A, Copyright 1987-90 by D. Thomas Mack' ' DA081003
' Copyright 1990 by D. Thomas Mack, all rights reserved.
' Name ...............: CNFG-SUB.BAS
' First Released .....: February 11, 1990
' Subsequent Releases.: August 26, 1990
' Copyright ..........: 1987-90
' Purpose.............: The Remote Bulletin Board System for the IBM PC,
' RBBS-PC, configuration program -- CONFIG.BAS
' utilizes a lot of menus and string space.
' These are incorporated within CNFG-SUB.BAS as a
' seperately callable subroutines in order to free
' up as much code as possible within the 64K code
' segment used by CONFIG.BAS.
' Parameters..........: Most parameters are passed via a COMMON statement.
'
' Subroutine Line Function of Subroutine
' Name Number
' ALLCAPS 61212+ Captialize a string
' ANSIDECODE 62040+ Convert ANSI strings into english text expressions
' ANYINTEGER 61450 Prompt for any integer
' ANYNUMBER 61400 Prompt for any number
' ASKRO 61100 Ask a question on a specific row
' ASKUPOS 61300 Ask for identifying field in USERS record
' BRKFNAME 61830 Break file name in drive/path, prefix, extension
' CHKFMSDIR 61700 Check FMS directory for valid structure
' CHKPERSDIR 61755 Check Personal directory format
' CNFGINIT 60385 Initialize CONFIG's constants
' COLORCODE 62040+ Convert response into ANSI-meaningful strings
' DISPLAY 12190 Display the CONFIG menu pages
' FINDFILE 61600 Determine whether a file exists
' FINDLAST 61850 Find last occurence of a character in a string
' GETANSI 62000 Prompt for ANSI colors to be used
' GETASCII 61810 Get any character by character or ascii value
' GETCOLOR 61950 Process request for setting color
' GETINIT 61110 Get answers that are integers
' GETNUMYN 61150 Get TRUE/FALSE answer to a YES/NO question
' GETYESNO 61200 Ask a question with a "yes" or "no" response
' HANDERR 61775+ Handle error checking for FMS directories
' MMINTEGER 61500 Prompt for integer with min and a max
' NETTYPE 60382 Prompt for supported network types
' REMOVE 61800 Remove characters from a string
' SECURE 61860 Allow commands and their security level to be changed
' SELMODEM 62100 Select modem to set modem strings
' TRIMTRAIL 61840 Remove trailing characters from a string
'
' $INCLUDE: 'CNFG-VAR.BAS'
'
' $SUBTITLE: 'DISPLAY - subroutine to display CONFIG's menus'
' $PAGE
'
' SUBROUTINE NAME -- DISPLAY
'
' INPUT PARAMETERS -- PARAMETER DESCRIPTION
' IX = 0 DISPLAY THE CHOICE OF MENUS
' IX = -1 RE-READ THE INPUT (INVALID REQUEST)
' IX > 0 DISPLAY THE APPROPRIATE PAGE
'
' OUTPUT PARAMETERS -- HJ$ OPTION SELECTED
' IPAGE MENU PAGE CONTAINING OPTION
' ILOOKUP INDEX (1 TO 20) OF OPTION SELECTED
'
' SUBROUTINE PURPOSE -- TO DISPLAY CONFIG'S MENUS AND REQUEST OPTION
'
SUB DISPLAY STATIC
'
' * DISPLAY CONFIG'S MAIN FUNCTION KEY MENU
'
IF IX > 0 THEN _
GOTO 12320
IF IX = -1 THEN _
GOTO 12590
* REPLACING old line(s) by new
12360 DISPLAYED.PAGE.NUMBER = 1
GOSUB 24800
LOCATE 3,1
PRINT " 1. SYSOP's Public First Name -------------------- " + SYSOP.FIRST.NAME$
PRINT " 2. SYSOP's Public Last Name --------------------- " + SYSOP.LAST.NAME$
PRINT " 3. SYSOP's default expert mode at signon -------- " + EXPERT.USER$
PRINT " 4. SYSOP's office hours -------------------------"STR$(START.OFFICE.HOURS);" to"STR$(END.OFFICE.HOURS)
PRINT " 5. Page SYSOP using printer's bell -------------- " + M11$
PRINT " 6. Go off-line whenever a DISK FULL occurs ------ " ; FNYESNO$(DISKFULL.GO.OFFLINE)
PRINT " 7. Prompt bell default is ----------------------- " + PROMPT.BELL$
PRINT " 8. Maximum time per session (in minutes) --------"STR$(MINUTES.PER.SESSION!)
PRINT " 9. Maximum minutes per day ----------------------";STR$(MAX.PER.DAY)
PRINT "10. Factor to extend session time for uploads ----" + STR$(UPLOAD.TIME.FACTOR!)
PRINT "11. # Months of inactivity before user deleted ---"STR$(ACT.MNTHS.B4.DELETING)
PRINT "12. Name of RBBS-PC shown initially is ----------- " + RBBS.NAME$
PRINT "13. Foreground color (for color monitors) is -----"STR$(FG)
PRINT "14. Background color (for color monitors) is -----"STR$(BG)
PRINT "15. The border color (for color monitors) is -----"STR$(BORDER)
PRINT "16. Your CONFIG.SYS contains 'DEVICE=ANSI.SYS'---- " + FNYESNO$(DOSANSI)
IF SMART.TEXT THEN _
SMART.TEXT$ = STR$(SMART.TEXT) _
* ------[ first line different ]------
ELSE SMART.TEXT$ = NONE.PICKED$ ' KG080301
PRINT "17. Control character for SMART TEXT -------------" + SMART.TEXT$
PRINT "18. File with automatic operator page parameters - " ; AUTOPAGE.DEF$
X = INSTR("ANS",LOGON.MAIL.LEVEL$)
IF X < 1 THEN _
X = 1
X$ = MID$("OLD & NEWNEW ONLY NONE",9*X-8,9)
IF X$ = "NONE" THEN _
X$ = NONE.PICKED$
PRINT "19. Personal mail notification level at logon is - " + X$
GOTO 12580
* REPLACING old line(s) by new
12466 DISPLAYED.PAGE.NUMBER = 8
GOSUB 24800
LOCATE 3,1
PRINT "141. Call-back verification ----------------------- " + NOT.YET.IN$ ' CALLBACK.VERIFICATION$
PRINT "142. Drive/path where personal files & dir stored - " + PERSONAL.DRVPATH$
PRINT "143. Name of Personal Directory ------------------- " + PERSONAL.DIR$
* ------[ first line different ]------
PRINT "144. Protocol required for personal downloads ----- " + MID$("<other><none> Ascii XMODEM Xm/CRC Kermit Ymodem Imodem YmodemGWxmodem", 7 * INSTR("NAXCKYIGW",PERSONAL.PROTOCOL$) + 1,7) ' EC060601
PRINT "145. Files with download security are listed in --- " + FILESEC.FILE$
PRINT "146. File name with privileged group passwords is - " + PASSWORD.FILE$
PRINT "147. Concatenate multi-file ASCII downloads ------- " + FNYESNO$(PERSONAL.CONCAT)
PRINT "148. Min SECURITY to CATEGORIZE uploads -----------" + STR$(SL.CATEGORIZE.UPLOADS)
PRINT "149. Min security level to view new uploads -------" + STR$(MIN.SEC.TO.VIEW)
PRINT "150. Security level exempt from 'epi-log' file ----" + STR$(SECURITY.EXEMPT.FROM.EPILOG)
PRINT "151. Min. security to 'AUTO ADD' conference user -- " + AUTO.ADD.SECURITY$ ' KG062301
PRINT "152. Min. security for old caller to turbo logon --" + STR$(ALLOW.CALLER.TURBO)
PRINT "153. Min. security to describe an existing file ---" + STR$(ADD.DIR.SECURITY)
PRINT "154. Help file to display for a security violation- " + SECVIO.HLP$
TIME.LOCK$ = MID$("<none> DOORS DOWNLDSBOTH ",TIME.LOCK*7+1,7)
PRINT "155. Time lock on DOORS and DOWNLOADS ------------- "; TIME.LOCK$
PRINT "156. Min. sec level exempt from auto-update of sec-" ; AUTO.UPGRADE.SEC
PRINT "157. Min security to READ & KILL all messages -----" ; SEC.KILL.ANY
PRINT "158. Do not display lines in msgs beginning with -- "; SCREEN.OUT.MSG$ ' KG041101
GOTO 12580
* REPLACING old line(s) by new
12470 DISPLAYED.PAGE.NUMBER = 9
GOSUB 30040
' MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD
MAX.ALLOWED.MSGS.FRM.DEF = MAXIMUM.NUMBER.OF.MSGS
GOSUB 24800
LOCATE 3,1
PRINT "161. Maximum number of concurrent RBBS-PC's -------" + STR$(MAXIMUM.NUMBER.OF.NODES)
MT$ = "single RBBS-PC copy "
IF MAXIMUM.NUMBER.OF.NODES <> 1 THEN _
MT$ = "concurrent RBBS-PC's" : _
SUBROUTINE.PARAMETER = 2 : _
IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 7 THEN _
SUBROUTINE.PARAMETER = 1 : _
CALL NETTYPE : _
ELSE CALL NETTYPE
IF NETWORK.TYPE = 6 THEN _
MT$ = "NETBIOS "
IF NETWORK.TYPE = 7 THEN _
MT$ = "DoubleDOS "
PRINT "162. Environment running " + MT$ + " ------ " + NETWORK.TYPE$
PRINT "163. RBBS-PC 'recycle' method when users log off --- " + RECYCLE.TO.DOS$
FILE$ = MAIN.MESSAGE.FILE$
GOSUB 30180
MAX.MSG.FILE.SIZE.FRM.DEF! = UG
* ------[ first line different ]------
IF CONFERENCE.MODE <> 1 THEN _ ' KG062302
X$ = "MAIN" _ ' KG062302
ELSE X$ = ZConfName$ ' KG062302
PRINT "164. Number of records in " ;X$;" User File ";STRING$(15-LEN(X$),"-");STR$(MAX.USR.FILE.SIZE.FRM.DEF) ' KG062302
IF MAIN.MESSAGE.FILE$ = MAINMSG$ THEN _ ' KG062302
X$ = "MAIN" _ ' KG062302
ELSE X$ = ZConfName$ ' KG062302
PRINT "165. Number of records in " ;X$;" Message File ";STRING$(12-LEN(X$),"-");STR$(MAX.MSG.FILE.SIZE.FRM.DEF!) ' KG062302
PRINT "166. Maximum number of messages allowed ------------" ; STR$(MAX.ALLOWED.MSGS.FRM.DEF) ' KG062302
PRINT "167. Conference File Maintenance."
IF DEFAULT.EXTENSION$ = "" THEN _ ' KG080101
X$ = NONE.PICKED$ _ ' KG080301
ELSE X$ = DEFAULT.EXTENSION$ ' KG080101
PRINT "168. Default extension for compressed files -------- " ; X$ ' KG080101
PRINT "169. Additional extensions for compressed files ---- " ; COMPRESSED.EXT$
PRINT "170. Message file GROWS in size as messages added -- " ; FNYESNO$(MESSAGES.CAN.GROW)
GOTO 12580
* REPLACING old line(s) by new
12500 DISPLAYED.PAGE.NUMBER = 12
GOSUB 24800
LOCATE 3,1
PRINT "221. Communications port to be used by RBBS-PC ---- " + COM.PORT$
PRINT "222. # of seconds to wait for modem to initialize -" + STR$(MODEM.INIT.WAIT.TIME)
PRINT "223. Seconds to wait before issuing modem commands-" + STR$(MODEM.COMMAND.DELAY.TIME)
PRINT "224. Number of rings to wait before answering -----" + STR$(REQUIRED.RINGS);
* ------[ first line different ]------
IF INSTR(USER.INIT.COMMAND$, "S0=255") > 0 THEN _ ' DA080503
PRINT " RING BACK";
PRINT
PRINT "225. Set the modem commands"
PRINT "226. ---------------------------------------------- "
PRINT "227. Issue modem commands between rings ----------- " ; FNYESNO$(COMMANDS.BETWEEN.RINGS)
PRINT "228. Baud rate to initially open modem at --------- " + MODEM.INIT.BAUD$
X$ = STR$(WAIT.BEFORE.DISCONNECT) + " seconds"
IF WAIT.BEFORE.DISCONNECT = 0 THEN _
X$ = "NO"
PRINT "229. Log off user who are idle for ----------------" + X$
PRINT "230. Are you using a 'DUMB' auto-answer modem? ---- " ; FNYESNO$(DUMB.MODEM)
PRINT "231. Initialize modem firmware for RBBS-PC."
PRINT "232. # seconds to wait after dropping DTR ---------" + STR$(DTR.DROP.DELAY)
PRINT "233. File with PROTOCOL definitions --------------- " + PROTO.DEF$
PRINT "234. Always check caller for AUTODOWNLOAD support - " ; FNYESNO$(ASK.IDENTITY)
PRINT "235. Require non-ascii protocol for BASIC files --- " ; FNYESNO$(REQUIRE.NON.ASCII)
X$ = STR$(RECYCLE.WAIT) + " minutes"
IF RECYCLE.WAIT = 0 THEN _
X$ = "<Don't recycle>"
PRINT "236. Recycle if no calls are received within ------" + X$
PRINT "237. Leave modem at initial baud ------------------ " + FNYESNO$(KEEP.INIT.BAUD)
GOTO 12580
* REPLACING old line(s) by new
12510 DISPLAYED.PAGE.NUMBER = 14
GOSUB 24800
* ------[ first line different ]------
LOCATE 3,1 ' KG080301
IF TIME.TO.DROP.TO.DOS < 1 THEN _ ' KG080301
TIME.TO.DROP.TO.DOS$ = NONE.PICKED$ _ ' KG080301
ELSE TIME.TO.DROP.TO.DOS$ = STRING$(4 - (LEN(STR$(TIME.TO.DROP.TO.DOS)) - 1),"0") + MID$(STR$(TIME.TO.DROP.TO.DOS),2) ' KG080301
* REPLACING old line(s) by new
24970 LOCATE 2,1
PRINT SPACE$(10)
* ------[ first line different ]------
LOCATE 2,10 ' KG062303
PRINT "(Conference Maintenance Mode for " + _ ' KG062303
ZConfName$ + _ ' KG062303
")";
RETURN
'
' * COMMON SUBROUTINE TO READ THE MESSAGES FILE'S CHECKPOINT RECORD
'
* REPLACING old line(s) by new
60385 SUB CNFGINIT STATIC
'
' * INITALIZE ALL VARIABLES IF A .DEF FILE DOESN'T AREADY EXIST
'
D$ = DD$
DRV$ = LEFT$(D$,1)
FALSE = 0
TRUE = NOT FALSE
SYSOP.SECURITY.LEVEL = 10
ACT.MNTHS.B4.DELETING = 1
ACTIVE.BULLETINS = 6
ADD.DIR.SECURITY = SYSOP.SECURITY.LEVEL
ALLOW.CALLER.TURBO = 6
ALTDIR.EXTENSION$ = ""
ALWAYS.STREW.TO$ = ""
ANS.MENU$ = D$ + "MENUA"
ASK.EXTENDED.DESC = SYSOP.SECURITY.LEVEL
ASK.IDENTITY = FALSE
AUTO.ADD.SECURITY = 5
AUTO.UPGRADE.SEC = SYSOP.SECURITY.LEVEL
AUTOPAGE.DEF$ = D$ + "AUTOPAGE.DEF"
BG = 0
BORDER = 0
BUFFER.SIZE = 128
BULLETIN.MENU$ = "BULLET"
BULLETIN.PREFIX$ = "BULLET"
BULLETINS.OPTIONAL = TRUE
C$ = ""
CALLER.BKGRD = 0
CALLERS.FILE$ = D$ + "CALLERS"
SEC.KILL.ANY = SYSOP.SECURITY.LEVEL
COM.PORT$ = "COM1"
COMMANDS.BETWEEN.RINGS = FALSE
COMMANDS.IN.PROMPT = TRUE
COMMENTS.AS.MESSAGES = FALSE
COMMENTS.FILE$ = D$ + "COMMENTS"
COMPRESSED.EXT$ = ".ARC.PAK"
COMPUTER.TYPE = 0
CONFERENCE.MENU$ = D$ + "CONFENCE"
CONFERENCE.VIEWER.SEC.LVL = 0
CONFMAIL.LIST$ = D$ + "CONFMAIL.DEF"
* ------[ first line different ]------
CONFIG.VERSION$ = "Version 17.3A" ' DA081003
DEFAULT.CATEGORY.CODE$ = "UNC"
DAYS.IN.SUBSCRIPTION.PERIOD = 365
DAYS.TO.WARN = 60
DIR.CATEGORY.FILE$ = D$ + "DIR.CAT"
DIRECTORY.PREFIX$ = "DIR"
DEFAULT.ECHOER$ = "R"
DEFAULT.LINE.ACK$ = ""
DEFAULT.SECURITY.LEVEL = 5
DIRECTORY.EXTENTION$ = "DIR"
DIRECTORY.PATH$ = D$
DISK.FOR.DOS$ = D$
DISKFULL.GO.OFFLINE = TRUE
DNLD.SUB = 0
DOORS.AVAILABLE = FALSE
DOORS.DEF$ = D$ + "DOORS.DEF"
DOORS.TERMINAL.TYPE = 8
DOSANSI = FALSE
DOS.VERSION = 2
DOWNLOAD.DRIVES$ = DRV$ + DRV$
DOWNLOAD.TO.SUBDIR = FALSE
DRIVE.FOR.BULLETINS$ = D$
DRIVE.FOR.HELP.FILES$ = D$
DTR.DROP.DELAY = 3
DUMB.MODEM = FALSE
ECHOER$ = "R"
EMPHASIZE.OFF.DEF$ = "[27]" + "[0;40;33m"
EMPHASIZE.ON.DEF$ = "[27]" + "[1;41;37m"
END.OFFICE.HOURS = 2200
ENFORCE.UPLOAD.DOWNLOAD.RATIOS = FALSE
EPILOG$ = D$ + "EPILOG.DEF"
ESCAPE.INSECURE = FALSE
EXPERT.USER = 0
EXPIRED.SECURITY = DEFAULT.SECURITY.LEVEL
EXTENDED.LOGGING = FALSE
EXTENSION.LIST$ = "ZIP"
FAST.FILE.LIST$ = D$ + "FIDX.DEF"
FAST.FILE.LOCATOR$ = D$ + "LIDX.DEF"
FC = 5
FG = 7
FG.1.DEF$ = "Bright Green"
FG.2.DEF$ = "Bright Yellow"
FG.3.DEF$ = "Bright Purple"
FG.4.DEF$ = "Bright Cyan"
FILE.COMMANDS.DEFAULTS$ = "DGLNPSUV"
FILE.COMMANDS$ = FILE.COMMANDS.DEFAULTS$
FILE.NOTIFY = FALSE
FILES.FUNCTION$(1,1) = "D)ownload a file "
FILES.FUNCTION$(2,1) = "G)oodbye "
FILES.FUNCTION$(3,1) = "L)ist file directory "
FILES.FUNCTION$(4,1) = "N)ew file search "
FILES.FUNCTION$(5,1) = "P)ersonal files "
FILES.FUNCTION$(6,1) = "S)earch files "
FILES.FUNCTION$(7,1) = "U)pload a file "
FILES.FUNCTION$(8,1) = "V)erbose archive list "
FILES.FUNCTION$(1,2) = "D"
FILES.FUNCTION$(2,2) = "G"
FILES.FUNCTION$(3,2) = "L"
FILES.FUNCTION$(4,2) = "N"
FILES.FUNCTION$(5,2) = "P"
FILES.FUNCTION$(6,2) = "S"
FILES.FUNCTION$(7,2) = "U"
FILES.FUNCTION$(8,2) = "V"
FILESEC.FILE$ = D$ + "FILESEC"
FIRST.NAME.PROMPT$ = "FIRST name"
FOSSIL = 0
GB = FC
GLOBAL.COMMANDS.DEFAULTS$ = "H?QX"
GLOBAL.COMMANDS$ = GLOBAL.COMMANDS.DEFAULTS$
GLOBAL.FUNCTION$(1,1) = "H)elp on-line "
GLOBAL.FUNCTION$(2,1) = "?)help on-line (=H) "
GLOBAL.FUNCTION$(3,1) = "Q)uit this part "
GLOBAL.FUNCTION$(4,1) = "X)Expert toggle on/off "
GLOBAL.FUNCTION$(1,2) = "H"
GLOBAL.FUNCTION$(2,2) = "?"
GLOBAL.FUNCTION$(3,2) = "Q"
GLOBAL.FUNCTION$(4,2) = "X"
GO.TO.SHELL = TRUE
HELP$(3) = "HELP03"
HELP$(4) = "HELP04"
HELP$(7) = "HELP07"
HELP$(9) = "HELP09"
HELP.EXTENSION$ = "HLP"
HELP.FILE.PREFIX$ = "HELP0"
HELP.PATH$ = D$
HOST.ECHO.OFF$ = ""
HOST.ECHO.ON$ = ""
IB = 0
KEEP.INIT.BAUD = FALSE
KEEP.TIME.CREDITS = FALSE
LAST.NAME.PROMPT$ = "LAST name"
LEN.HASH = 31
LEN.INDIV = 0
LIBRARY.ARCHIVE.PATH$ = D$
LIBRARY.ARCHIVE.PROGRAM$ = "ARCA "
LIBRARY.COMMANDS.DEFAULTS$ = "ACDGLSV"
LIBRARY.COMMANDS$ = LIBRARY.COMMANDS.DEFAULTS$
LIBRARY.DRIVE$ = ""
LIBRARY.MAX.DISK = 705
LIBRARY.MAX.DIRECTORY = 7
LIBRARY.MAX.SUBDIR = 100
LIBRARY.SUBDIR.PREFIX$ = "DISK"
LIBRARY.DIRECTORY.PATH$ = D$
LIBRARY.DIRECTORY.EXTENTION$ = "CDR"
LIBRARY.FUNCTION$(1,1) = "A)rchive a Library disk "
LIBRARY.FUNCTION$(2,1) = "C)hange Library disk "
LIBRARY.FUNCTION$(3,1) = "D)ownload a file "
LIBRARY.FUNCTION$(4,1) = "G)oodbye "
LIBRARY.FUNCTION$(5,1) = "L)ist a file directory "
LIBRARY.FUNCTION$(6,1) = "S)earch files "
LIBRARY.FUNCTION$(7,1) = "V)erbose archive list "
LIBRARY.FUNCTION$(1,2) = "A"
LIBRARY.FUNCTION$(2,2) = "C"
LIBRARY.FUNCTION$(3,2) = "D"
LIBRARY.FUNCTION$(4,2) = "G"
LIBRARY.FUNCTION$(5,2) = "L"
LIBRARY.FUNCTION$(6,2) = "S"
LIBRARY.FUNCTION$(7,2) = "V"
LIBRARY.WORK.DISK.PATH$ = D$
LIMIT.SEARCH.TO.FMS = FALSE
LOGON.MAIL.LEVEL$ = "A"
LSB = 1016
* REPLACING old line(s) by new
60390 MACRO.DRVPATH$ = D$
MACRO.EXTENSION$ = ""
MAIN.COMMANDS.DEFAULTS$ = "ABCDEFIJKOPRSTUVW@"
MAIN.COMMANDS$ = MAIN.COMMANDS.DEFAULTS$
MAIN.FUNCTION$(1,1) = "A)nswer questionnaire "
MAIN.FUNCTION$(2,1) = "B)ulletins "
MAIN.FUNCTION$(3,1) = "C)omments "
MAIN.FUNCTION$(4,1) = "D)oor subsystem "
MAIN.FUNCTION$(5,1) = "E)nter message "
MAIN.FUNCTION$(6,1) = "F)iles subsystem "
MAIN.FUNCTION$(7,1) = "I)nitial welcome "
MAIN.FUNCTION$(8,1) = "J)oin a conference "
MAIN.FUNCTION$(9,1) = "K)ill messages "
MAIN.FUNCTION$(10,1) = "O)perator page "
MAIN.FUNCTION$(11,1) = "P)ersonal mail "
MAIN.FUNCTION$(12,1) = "R)ead messages "
MAIN.FUNCTION$(13,1) = "S)can messages header "
MAIN.FUNCTION$(14,1) = "T)opic msg scan "
MAIN.FUNCTION$(15,1) = "U)tilities subsystem "
MAIN.FUNCTION$(16,1) = "V)iew conference mail "
MAIN.FUNCTION$(17,1) = "W)ho's on other nodes "
MAIN.FUNCTION$(18,1) = "@)Library subsystem "
MAIN.FUNCTION$(1,2) = "A"
MAIN.FUNCTION$(2,2) = "B"
MAIN.FUNCTION$(3,2) = "C"
MAIN.FUNCTION$(4,2) = "D"
MAIN.FUNCTION$(5,2) = "E"
MAIN.FUNCTION$(6,2) = "F"
MAIN.FUNCTION$(7,2) = "I"
MAIN.FUNCTION$(8,2) = "J"
MAIN.FUNCTION$(9,2) = "K"
MAIN.FUNCTION$(10,2) = "O"
MAIN.FUNCTION$(11,2) = "P"
MAIN.FUNCTION$(12,2) = "R"
MAIN.FUNCTION$(13,2) = "S"
MAIN.FUNCTION$(14,2) = "T"
MAIN.FUNCTION$(15,2) = "U"
MAIN.FUNCTION$(16,2) = "V"
MAIN.FUNCTION$(17,2) = "W"
MAIN.MESSAGE.BACKUP$ = D$ + "MESSAGES.BAK"
MAIN.MESSAGE.FILE$ = D$ + "MESSAGES"
MAIN.PUI$ = D$ + "MAIN.PUI"
MAIN.USER.FILE$ = D$ + "USERS"
MASTER.DIRECTORY.NAME$ = ""
MAX.ALLOWED.MSGS.FRM.DEF = 5
MAX.CARRIER.WAIT = 30
MAX.DESC.LEN = 40
MAX.EXTENDED.LINES = 2
MAX.MESSAGE.LINES = 19
MAX.PER.DAY = 0
MAX.REG.SEC = 0
MAX.USR.FILE.SIZE.FRM.DEF = 16
MAX.WORK.VAR = 30
MAXD = 15
MAXIMUM.DISPLAYABLE.PAGES = 17
MAXIMUM.PASSWORD.CHANGES = 3
MAXIMUM.VIOLATIONS = 5
MAXIMUM.NUMBER.OF.NODES = 1
MENU$(1) = D$ + "MENU1"
MENU$(2) = D$ + "MENU2"
MENU$(3) = D$ + "MENU3"
MENU$(4) = D$ + "MENU4"
MENU$(5) = D$ + "MENU5"
MENU$(6) = D$ + "MENU6"
MENUS.CAN.PAUSE = TRUE
MESSAGE.REMINDER = TRUE
MESSAGES.CAN.GROW = FALSE
MIN.NEWCALLER.BAUD = 0
MIN.OLDCALLER.BAUD = 0
MIN.SEC.TO.VIEW = DEFAULT.SECURITY.LEVEL
MINIMUM.LOGON.SECURITY = 0
MINIMUM.SECURITY.FOR.TEMP.PASSWORD = 5
MINUTES.PER.SESSION! = 72
MLCOM = FALSE
MM = 5
* ------[ first line different ]------
MO$ = DD$ ' KG080901
MUSIC = FALSE
NET.MAIL$ = "<none>"
NETWORK.TYPE = 0
NETWORK.TYPE$ = "IBM's DOS"
NEW.FILES.CHECK = FALSE
NEW.USER.QUESTIONNAIRE$ = D$ + "RBBS-REG.DEF"
NEWUSER.FILE$ = D$ + "NEWUSER"
NEWUSER.SETS.DEFAULTS = TRUE
OMIT.MAIN.DIRECTORY$ = "NO"
OMIT.UPLOAD.DIRECTORY$ = "NO"
OVERWRITE.SECURITY.LEVEL = SYSOP.SECURITY.LEVEL
PAGE.LENGTH = 23
PAGING.PRINTER.SUPPORT$ = ". "
PASSWORD.FILE$ = D$ + "PASSWRDS"
PCJR = FALSE
PERSONAL.BEGIN = 1
PERSONAL.DIR$ = D$+"PRIV.DEF"
PERSONAL.DRVPATH$ = D$
PERSONAL.LEN = 31
PERSONAL.CONCAT = FALSE
PRELOG$ = D$ + "PRELOG"
PRIVATE.READ.SEC = DEFAULT.SECURITY.LEVEL
PROTO.DEF$ = D$ + "PROTO.DEF"
PROMPT.BELL = 0
PROMPT.HASH$ = "Name"
PROMPT.INDIV$ = ""
PS = 5
PUBLIC.READ.SEC = DEFAULT.SECURITY.LEVEL
QUES.PATH$ = D$
RBBS.BAT$ = D$ + "RBBS" + NODE.ID$ + ".BAT"
RBBS.NAME$ = "RBBS-PC"
RCTTY.BAT$ = D$ + "RCTTY" + NODE.ID$ + ".BAT"
RECYCLE.TO.DOS = 0
RECYCLE.TO.DOS$ = "INTERNAL"
RECYCLE.WAIT = 0
REDIRECT.IO.METHOD = TRUE
REGISTRATION.PROGRAM$ = "<none>"
REMEMBER.NEW.USERS = TRUE
REMIND.FILE.TRANSFERS = FALSE
REMIND.PROFILE = FALSE
REQUIRE.NON.ASCII = TRUE
REQUIRED.QUESTIONNAIRE$ = "<none>"
REQUIRED.RINGS = 1
RESTRICT.BAUD = FALSE
RESTRICT.BY.DATE = FALSE
RESTRICT.VALID.CMDS = FALSE
RTS$ = "NO"
SCREEN.OUT.MSG$ = "SEEN-BY: "
SEC.CHANGE.MSG = SYSOP.SECURITY.LEVEL
SEC.LVL.EXEMPT.FRM.PURGING = SYSOP.SECURITY.LEVEL
SECVIO.HLP$ = D$ + "SECVIO." + HELP.EXTENSION$
SECURITY.EXEMPT.FROM.EPILOG= DEFAULT.SECURITY.LEVEL + 1
SF = SYSOP.SECURITY.LEVEL
SHOOT.YOURSELF = FALSE
SHOW.SECTION = TRUE
SIZE.OF.STACK = 1024
SL.CATEGORIZE.UPLOADS = SYSOP.SECURITY.LEVEL
SMART.TEXT = 123
START.HASH = 1
START.INDIV = 0
START.OFFICE.HOURS = 800
SURVIVE.NOUSER.ROOM = FALSE
SWITCH.BACK = FALSE
SYSOP.COMMANDS.DEFAULTS$ = "1234567"
SYSOP.COMMANDS$ = SYSOP.COMMANDS.DEFAULTS$
SYSOP.FUNCTION$(1,1) = " 1 List comments "
SYSOP.FUNCTION$(2,1) = " 2 List CALLERS log "
SYSOP.FUNCTION$(3,1) = " 3 Recover a message "
SYSOP.FUNCTION$(4,1) = " 4 Erase comments "
SYSOP.FUNCTION$(5,1) = " 5 User maintenance "
SYSOP.FUNCTION$(6,1) = " 6 Toggle Page bell "
SYSOP.FUNCTION$(7,1) = " 7 Exit to DOS "
SYSOP.FUNCTION$(1,2) = " 1"
SYSOP.FUNCTION$(2,2) = " 2"
SYSOP.FUNCTION$(3,2) = " 3"
SYSOP.FUNCTION$(4,2) = " 4"
SYSOP.FUNCTION$(5,2) = " 5"
SYSOP.FUNCTION$(6,2) = " 6"
SYSOP.FUNCTION$(7,2) = " 7"
SYSOP.FIRST.NAME$ = "TOM"
SYSOP.LAST.NAME$ = "MACK"
SYSOP.MENU.SECURITY.LEVEL = SYSOP.SECURITY.LEVEL
SYSOP.PASSWORD.1$ = "SECRET" ' DA081004
SYSOP.PASSWORD.2$ = "NAME" ' DA081004
TIME.TO.DROP.TO.DOS = 0
TRASHCAN.FILE$ = D$ + "TRASHCAN"
TURN.PRINTER.OFF = FALSE
TURBO.RBBS = TRUE
UE = 5
FMS.DIRECTORY$ = ""
UPCAT.HELP$ = "UPCAT"
UPLOAD.DIRECTORY$ = "99"
UPLOAD.PATH$ = D$
UPLOAD.SUBDIR$ = ""
UPLOAD.TIME.FACTOR! = 0
UPLOAD.TO.SUBDIR = FALSE
USE.BASIC.WRITES = FALSE
USE.DEVICE.DRIVER$ = "" ' KG080901
USER.LOCATION$ = "CITY and STATE"
UTIL.COMMANDS.DEFAULTS$ = "BCEFGLMPRSTU"
UTIL.COMMANDS$ = UTIL.COMMANDS.DEFAULTS$
UTILITY.FUNCTION$(1,1) = "B)aud rate "
UTILITY.FUNCTION$(2,1) = "C)lock (time) "
UTILITY.FUNCTION$(3,1) = "E)cho "
UTILITY.FUNCTION$(4,1) = "F)ile x-fer protocol "
UTILITY.FUNCTION$(5,1) = "G)raphics "
UTILITY.FUNCTION$(6,1) = "L)ines per page "
UTILITY.FUNCTION$(7,1) = "M)sg margin setting "
UTILITY.FUNCTION$(8,1) = "P)assword change "
UTILITY.FUNCTION$(9,1) = "R)eview defaults "
UTILITY.FUNCTION$(10,1) = "S)tatistics "
UTILITY.FUNCTION$(11,1) = "T)oggle "
UTILITY.FUNCTION$(12,1) = "U)ser log scan "
VOICE.TYPE = 0
VOICE.TYPE$ = NONE.PICKED$
XON.XOFF = FALSE
FOR I = 1 TO LEN(UTIL.COMMANDS.DEFAULTS$)
UTILITY.FUNCTION$(I,2) = MID$(UTIL.COMMANDS.DEFAULTS$,I,1)
NEXT
WAIT.BEFORE.DISCONNECT = 180
WELCOME.FILE$ = D$ + "WELCOME"
WELCOME.INTERRUPTABLE = TRUE
WILL.SUBDIRS.B.USED = FALSE
WRITE.BUF.DEF = 1024
FOR I = 1 TO NUM.SYSOP
SYSOP.FUNCTION(I) = SF
NEXT
FOR I = 1 TO NUM.MAIN
MAIN.FUNCTION(I) = MM
NEXT
FOR I = 1 TO NUM.FILES
FILES.FUNCTION(I) = FC
NEXT
FOR I = 1 TO NUM.LIBRARY
LIBRARY.FUNCTION(I) = PS
NEXT
FOR I = 1 TO NUM.UTILITY
UTILITY.FUNCTION(I) = UE
NEXT
FOR I = 1 TO NUM.GLOBAL
GLOBAL.FUNCTION(I) = GB
NEXT
CALL MODEMINITCMD
END SUB
' $SUBTITLE: 'VOICETYPE - subroutine to select voice'
' $PAGE
'
' SUBROUTINE NAME -- VOICETYPE
'
' INPUT PARAMETERS -- VOICE.TYPE
' VOICE.TYPE$
' SUBROUTINE.PARAMETER
'
' OUTPUT PARAMETERS -- VOICE.TYPE
' VOICE.TYPE$
'
' SUBROUTINE PURPOSE -- TO SELECT THE RBBS-PC SUPPORTED VOICE
' SYNTHESIZERS
'
SUB VOICETYPE STATIC
ON SUBROUTINE.PARAMETER GOTO 60482,60484
* REPLACING old line(s) by new
61212 ANS$ = "YES"
EXIT SUB
END SUB
' $SUBTITLE: 'ALLCAPS - convert a sting into all capital letters'
' $PAGE
'
' SUBROUTINE NAME -- ALLCAPS
'
' INPUT PARAMETERS -- PARAMETER MENANING
' STRNG$ STRING CONTAINING THE QUESTION
'
' OUTPUT PARAMETERS -- STRNG$ CAPITALIZED STRING
'
' SUBROUTINE PURPOSE -- TO CAPITALIZE A STRING
'
SUB ALLCAPS (STRNG$) STATIC
* ------[ first line different ]------
FOR WasZ = 1 TO LEN(STRNG$) ' KG072601
WasX = ASC(MID$(STRNG$,WasZ,1)) ' KG072601
IF WasX > 96 THEN IF WasX < 123 THEN _ ' KG072601
MID$(STRNG$,WasZ,1) = CHR$(WasX AND 223) ' KG072601
NEXT
END SUB
' $SUBTITLE: 'ASKUPOS - find the unique user field for USERS'
' $PAGE
'
' SUBROUTINE NAME -- ASKUPOS
'
' INPUT PARAMETERS -- PARAMETER MENANING
' HDR$ HEADER
' BEGIN.COL BEGINNING COLUMN OF FIELD
' FIELD.LEN LENGTH OF FIELD IN USER'S RECORD
' PRMPT$ PROMPT TO GIVE FOR FIELD
'
' OUTPUT PARAMETERS -- ABOVE INPUTS UPDATED WITH USER'S RESPONSES
'
' SUBROUTINE PURPOSE -- TO ASK THE SYSOP WHAT UNIQUE FIELD IN THE USERS
' RECORD IS TO BE ASKED FOR AT LOGON
'
SUB ASKUPOS (HDR$,BEGIN.COL,FIELD.LEN,PRMPT$) STATIC
CLS
LOCATE 3,20
PRINT HDR$;
* REPLACING old line(s) by new
61810 CLS
LOCATE 8,30
PRINT TITLE$;
LOCATE 13,5
PRINT "Current value is"
PRINT STRNG$
PRINT
PRINT "Please enter the new values by entering the character"
PRINT "or enclosing its ASCII value in square brackets:"
PRINT "(Press ENTER to make empty)
LINE INPUT "";HJ$
STRNG$ = HJ$
END SUB
' $SUBTITLE: 'BRKFNAME - subroutine to decompose a file name'
' $PAGE
'
' SUBROUTINE NAME -- BRKFNAME
'
' INPUT PARAMETERS -- PARAMETER MEANING
' FILENAME$ NAME OF THE FILE TO BE DECOMPOSED
' FOR.JOINING INDICATOR IF OUTPUT IS TO BE COMPBINED
'
' OUTPUT PARAMETERS -- DRVPATH$ DRIVE AND PATH
' PREFIX$ 8-CHARACTER FILE NAME PREFIX
' EXTENSION$ 3-CHARACTER EXTENSION
'
' SUBROUTINE PURPOSE -- BREAKS DOWN A FILE NAME INTO A DRIVE AND PATH,
' FILE PREFIX (8 CHARACTERS), AND FILE EXTENSION
' (3 CHARACTERS). IF "FOR.JOINING" IS TRUE, THE
' DRIVE AND PATH HAVE A ":" AND A "\" IN IT AND
' THE EXTENSION BEGINS WITH A ".".
'
SUB BRKFNAME (FILENAME$,DRVPATH$,PREFIX$,EXTENSION$,FOR.JOINING) STATIC
* ------[ first line different ]------
FLNAME$ = FILENAME$ ' DA082103
* REPLACING old line(s) by new
* ------[ first line different ]------
61830 CALL ALLCAPS (FLNAME$) ' DA082103
DRVPATH$ = ""
PREFIX$ = ""
EXTENSION$ = "" ' KG082301
L = LEN(FLNAME$) ' DA082103
IF L < 1 THEN _ ' DA082103
EXIT SUB
CALL FINDLAST (FLNAME$,"\",X,Y) ' DA082103
IF X < 1 THEN _
IF MID$(FLNAME$,2,1) = ":" THEN _ ' DA082103
DRVPATH$ = LEFT$(FLNAME$, 2): _ ' DA082101
S = 3 _
ELSE S = 1 _
ELSE DRVPATH$ = LEFT$(FLNAME$,X) : _ ' DA082101
S = X + 1
X = INSTR(FLNAME$+".",".")
IF X < L THEN _ ' DA082103
EXTENSION$ = MID$(FILENAME$,X) ' DA082101
IF S <= L THEN _ ' DA082103
IF X >= S THEN _ ' DA082103
PREFIX$ = MID$(FLNAME$,S,X - S) ' DA082103
IF FOR.JOINING THEN _ ' DA082101
EXIT SUB
IF Y > 1 THEN _ ' KG082301
DRVPATH$ = LEFT$(DRVPATH$, LEN(DRVPATH$) - 1) ' DA082101
IF LEN(EXTENSION$) > 0 THEN _
EXTENSION$ = MID$(EXTENSION$, 2) ' DA082101
END SUB
'
' $SUBTITLE: 'TRIMTRAIL - subroutine to trim off trailing characters'
' $PAGE
'
' SUBROUTINE NAME -- TRIMTRAIL
'
' INPUT PARAMETERS -- PARAMETER MEANING
' TRIM.PARM$ TIME IN SECONDS AFTER MIDNIGHT TO WAIT
' BEFORE DISPLAYING
' TRIM.THIS$ WHAT CHARACTER TO TRIM OFF END
'
' OUTPUT PARAMETERS -- NONE
'
' SUBROUTINE PURPOSE -- TO DISPLAY RBBS-PC's SYSOP MENU ON THE LOCAL SCREEN
'
* REPLACING old line(s) by new
61892 CALL ASKRO("New command for " + _
MID$(COMMANDS$(FF,1),1,INSTR(COMMANDS$(FF,1)," ")) + _
"is?",24,HK$)
* ------[ first line different ]------
IF HK$ = CHR$(34) THEN _ ' KG041702
GOTO 61892 ' KG041702
X$ = MID$(HK$,1,1)
CALL ALLCAPS (X$)
IF LEN(HK$) > 1 THEN _
HK$ = X$ + MID$(HK$,2)
IF LEN (HK$) = 1 THEN _
HK$ = X$
COMMANDS$(FF,2) = HK$
MID$(SECTION.COMMANDS$,FF,1) = HK$
GOTO 61880
* REPLACING old line(s) by new
62100 ' set modem strings by selecting a modem
SUB SELMODEM STATIC
CALL FINDFILE ("MODEMS.SET",OK)
* ------[ first line different ]------
IF OK THEN _
GOTO 62103 ' DA080503
CALL MODEMINITCMD ' KG080901
EXIT SUB ' DA080503
* INSERTING new line(s)
62103 CLOSE 2 ' DA080503
IF NETWORK.TYPE = 6 THEN _ ' DA080503
OPEN "MODEMS.SET" FOR INPUT SHARED AS #2 _ ' DA080503
ELSE OPEN "I",2,"MODEMS.SET" ' DA080503
MODEM.MODEL = 0
MODEM.PAGE = 0 ' DA081001
* REPLACING old line(s) by new
* ------[ first line different ]------
62105 CLS ' DA080503
PRINT "NUMBER";
LOCATE 1,10
PRINT "Modem Model";
LOCATE 1,40
PRINT "Switch Settings";
LOCATE 2,1
PRINT STRING$(78,"-");
FOR DISPLAY.LINE = 3 TO 19
IF EOF(2) THEN _
MODEM.PAGE = 1 : _ ' DA081001
GOTO 62110
MODEM.MODEL = MODEM.MODEL + 1
INPUT #2, MODEM.MODEL$, SWITCHES$
FOR I = 1 TO 14 ' # MODEMS.SET parms - 2
INPUT #2,GARBAGE$
NEXT
LOCATE DISPLAY.LINE, 2
PRINT MODEM.MODEL;
LOCATE DISPLAY.LINE, 10
PRINT MODEM.MODEL$;
LOCATE DISPLAY.LINE, 40
PRINT SWITCHES$;
NEXT ' DA081001
LOCATE DISPLAY.LINE + 1, 2
PRINT " 0"
LOCATE DISPLAY.LINE + 1, 10
PRINT "Next Page"
* INSERTING new line(s)
62110 LOCATE 24,10 ' DA080503
PRINT "Use Parameter 231 to initialize modem's firmware";
CALL GETINIT("Select modem number, or [ENTER] to exit", _
22,MODEM.PAGE,MODEM.MODEL,MODEM.SELECTED, CR) ' DA081001
IF CR THEN _
EXIT SUB
IF MODEM.SELECTED = 0 THEN _ ' DA081001
GOTO 62105
CLOSE 2
IF NETWORK.TYPE = 6 THEN _
OPEN "MODEMS.SET" FOR INPUT SHARED AS #2 _
ELSE OPEN "I",2,"MODEMS.SET"
FOR I = 1 TO (MODEM.SELECTED - 1) * 16 ' # of parms * modem
INPUT #2,GARBAGE$
NEXT
INPUT #2, MODEM.MODEL$, _
SWITCHES$, _
USER.ANSWER.COMMAND$, _
USER.COUNT.RINGS.COMMAND$, _
USER.GO.OFFHOOK.COMMAND$, _
USER.INIT.COMMAND$, _
USER.RESET.COMMAND$, _
USER.INITIALIZE.COMMAND$, _
USER.FIRMWARE.CLEAR.CMND$, _
USER.FIRMWARE.WRITE.CMND$, _
RTS$, _
MODEM.INIT.WAIT.TIME, _
MODEM.COMMAND.DELAY.TIME, _
COMMANDS.BETWEEN.RINGS, _
MODEM.INIT.BAUD$, _
KEEP.INIT.BAUD
CLOSE 2
END SUB
62120 SUB MODEMINITCMD STATIC ' KG080901
RTS$ = "NO" ' DA080503
MODEM.INIT.WAIT.TIME = 3 ' DA080503
COMMANDS.BETWEEN.RINGS = FALSE ' DA080503
FIRMWARE.INITIALIZE.COMMAND$ = "AT&C1&D3B1E0V1M0S0=0" ' KG081402
FIRMWARE.CLEAR.COMMAND$ = "AT&F" ' DA080503
FIRMWARE.WRITE.COMMAND$ = "AT&W" ' DA080503
KEEP.INIT.BAUD = FALSE ' DA080503
MODEM.ANSWER.COMMAND$ = "ATQ0X1V1A"
MODEM.COMMAND.DELAY.TIME = 1
MODEM.COUNT.RINGS.COMMAND$ = "ATS1?"
MODEM.GO.OFFHOOK.COMMAND$ = "ATH1M0" ' DA080503
'MODEM.GO.OFFHOOK.COMMAND$ = "ATQ1E1H1M0"
MODEM.INIT.BAUD$ = "300"
MODEM.INIT.COMMAND$ = "ATE0M0Q0V1X1S0=254S2=255S10=20" ' DA080503
'MODEM.INIT.COMMAND$ = "ATM0Q1S2=255S10=30E0Q0X1S0=254 "
MODEM.RESET.COMMAND$ = "ATZ" ' KG081402
'USER.INITIALIZE.COMMAND$ = "AT&C1&D3B1E0V1M0S0=0&T5"
'USER.FIRMWARE.WRITE.CMND$ = "&W"
USER.ANSWER.COMMAND$ = MODEM.ANSWER.COMMAND$ ' DA080503
USER.COUNT.RINGS.COMMAND$ = MODEM.COUNT.RINGS.COMMAND$ ' DA080503
USER.GO.OFFHOOK.COMMAND$ = MODEM.GO.OFFHOOK.COMMAND$ ' DA080503
USER.INIT.COMMAND$ = MODEM.INIT.COMMAND$ ' DA080503
USER.RESET.COMMAND$ = MODEM.RESET.COMMAND$ ' DA080503
USER.INITIALIZE.COMMAND$ = FIRMWARE.INITIALIZE.COMMAND$ ' DA080503
USER.FIRMWARE.CLEAR.CMND$ = FIRMWARE.CLEAR.COMMAND$ ' DA080503
USER.FIRMWARE.WRITE.CMND$ = FIRMWARE.WRITE.COMMAND$ ' DA080503
END SUB ' KG080901